package com.zzw.bean;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 柜机状态实体类
 */
@Data
public class CabinetStatus {
    /**
     * 头码
     */
    private byte header;
    
    /**
     * 数据包长度
     */
    private int length;
    
    /**
     * 命令
     */
    private byte command;
    
    /**
     * 机芯列表
     */
    private List<CoreStatus> cores = new ArrayList<>();
    
    /**
     * 校验码
     */
    private byte checksum;
    
    @Data
    public static class CoreStatus {
        /**
         * 机芯地址
         */
        private byte address;
        
        /**
         * 温度
         */
        private int temperature;
        
        /**
         * 软件版本
         */
        private int softwareVersion;
        
        /**
         * 硬件版本
         */
        private int hardwareVersion;
        
        /**
         * 充电宝列表
         */
        private List<PowerBankStatus> powerBanks = new ArrayList<>();
    }
    
    @Data
    public static class PowerBankStatus {
        /**
         * 孔位
         */
        private int slot;
        
        /**
         * 状态信息
         */
        private int status;
        
        /**
         * 放电电流
         */
        private double dischargeCurrent;
        
        /**
         * 电芯电压
         */
        private double cellVoltage;
        
        /**
         * 区域码
         */
        private byte areaCode;
        
        /**
         * 充电宝SN
         */
        private long serialNumber;
        
        /**
         * 电量
         */
        private int batteryLevel;
        
        /**
         * 温度
         */
        private int temperature;
        
        /**
         * 充电电压
         */
        private double chargeVoltage;
        
        /**
         * 充电电流
         */
        private double chargeCurrent;
        
        /**
         * 软件版本
         */
        private int softwareVersion;
        
        /**
         * 孔位检测状态
         */
        private byte slotStatus;
    }
} 